package io.serializable;

import java.io.*;

public class Test {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        // 1.将对象变成字节数据写出到文件/网络 -- 序列化
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("AdvancedCode/src/io/serializable/student.txt"));
        oos.writeObject(new Student("奈奈子",20));
        oos.close();
        // 2.通过读取文件/网络中的字节数据转换成对 -- 反序列化
        // 读取对象时因为不知道有多少个,所有使用循环获取
        // 但如果文件读到末尾.再继续读的话会抛出EOFException,所以需要捕获
        // 循环获取,当抛出异常时跳出
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("AdvancedCode/src/io/serializable/student.txt"));
        while (true){
            try {
                Object o = ois.readObject();
                System.out.println(o);
            } catch (EOFException e) {
                break;
            }
        }
        ois.close();

    }
}
